home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 4 / Amiga Tools 4.iso / text+faqs / amiga-main-internet-list / amil / amil_search.rexx next >
OS/2 REXX Batch file  |  1996-02-26  |  3KB  |  164 lines

  1. /*
  2. **---------------------------------------
  3. ** 
  4. ** AMIL_Search.rexx V0.1
  5. **
  6. ** Search AMIL.guide for keywords
  7. **
  8. **---------------------------------------
  9. **
  10. ** © 1995 Tassos Hadjithomaoglou
  11. **
  12. ** $VER: AMIL_Search.rexx V0.1 (7-Oct-95)
  13. **---------------------------------------
  14. */
  15.  
  16. OPTIONS RESULTS
  17.  
  18. TRUE=1
  19. FALSE=0
  20.  
  21. /*
  22. ** Path for Viewer
  23. ** Enter here the full path of a AmigaGuide Viewer of your choice
  24. */
  25.  
  26. Viewer = 'SYS:Utilities/MultiView'
  27.  
  28. /*
  29. ** Check for argument, else ask for one
  30. */
  31.  
  32. PARSE ARG keyword
  33.  
  34. IF keyword = '' THEN
  35. DO
  36.    SAY 'Please input word to search for : '
  37.    PARSE PULL keyword
  38.    IF keyword = '' THEN
  39.    DO
  40.       SAY 'No word was given !!!'
  41.       EXIT
  42.    END
  43. END
  44.  
  45. SAY 'Searching for "'keyword'"...'
  46.  
  47. /*
  48. ** Check for AMIL.guide and open it
  49. */
  50.  
  51. bool1=OPEN(AMIL_file,'AMIL:AMIL.guide',R)
  52.  
  53. IF bool1 = FALSE THEN
  54. DO
  55.    SAY 'The file "AMIL:AMIL.guide" cannot be found.'
  56.    SAY 'Please set your AMIL: assign correctly!!'
  57.    EXIT
  58. END
  59.  
  60. /*
  61. ** Initialize variables
  62. */
  63.  
  64. counter = 0
  65. nodeline = 0
  66. keywordline = 0
  67. nodename = ''
  68. s = ''
  69.  
  70. /*
  71. ** Create the AMIL_Search.guide
  72. */
  73.  
  74. bool1=OPEN(Search_file,'T:AMIL_Search.guide',W)
  75.  
  76. WRITELN(Search_file,'@database AMIL_Search')
  77. WRITELN(Search_file,'@node "Main" "AMIL_Search"')
  78. WRITELN(Search_file,'')
  79. WRITELN(Search_file,' The word "@{b}'keyword'@{ub}" was found in the following nodes :')
  80. WRITELN(Search_file,'')
  81.  
  82. DO UNTIL EOF(AMIL_file) = TRUE
  83.    s = READLN(AMIL_file)
  84.    counter = counter + 1
  85.  
  86.    IF LEFT(s,5) = '@node' THEN
  87.    DO
  88.       s1 = DELSTR(s,1,7)
  89.       nodename = DELSTR(s1,INDEX((s1),'"'))
  90.       nodeline = counter
  91.    END
  92.  
  93.    IF (LEFT(s,1) ~= '@') | (LEFT(s,2) = '@{') THEN
  94.    DO
  95.       IF INDEX(UPPER(s),UPPER(keyword)) ~= 0 THEN 
  96.       DO
  97.          keywordline = counter - nodeline - 2
  98.          s2 = ' @{"'nodename'" link "AMIL:AMIL.guide/'nodename'" 'keywordline'}'
  99. /*
  100. **----------------
  101. ** example link :
  102. **-----------------------------
  103. ** @{"Author" link "Author" 0}
  104. **-----------------------------
  105. */
  106.          WRITELN(Search_file,s2)
  107.          WRITELN(Search_file,'   's)
  108.          WRITELN(Search_file,COPIES('-',72))
  109.       END
  110.    END
  111. END
  112.  
  113. WRITELN(Search_file,'')
  114. WRITELN(Search_file,'@endnode')
  115.  
  116. /*
  117. ** Close both files
  118. */
  119.  
  120. bool1=CLOSE(AMIL_file)
  121. bool1=CLOSE(Search_file)
  122.  
  123. /*
  124. ** Check for Viewer or MultiView/AmigaGuide
  125. */
  126.  
  127. bool1 = EXISTS(Viewer)
  128. IF bool1 = FALSE THEN
  129. DO
  130.    SAY Viewer 'wasn''t found.'
  131.    SAY 'Trying MultiView/AmigaGuide...'
  132.    bool1 = EXISTS('SYS:Utilities/MultiView')
  133.    IF bool1 = FALSE THEN
  134.    DO
  135.       bool1 = EXISTS('SYS:Utilities/AmigaGuide')
  136.       IF bool1 = FALSE THEN
  137.       DO
  138.          SAY 'MultiView/AmigaGuide weren''t found in SYS:Utilities !!!'
  139.          EXIT
  140.       END
  141.       ELSE
  142.       DO
  143.          Viewer = 'SYS:Utilities/AmigaGuide'
  144.       END
  145.    END
  146.    ELSE
  147.    DO
  148.       Viewer = 'SYS:Utilities/MultiView'
  149.    END
  150. END
  151.  
  152. /*
  153. ** View the results from the search
  154. */
  155.  
  156. SAY 'Running 'Viewer'...'
  157. ADDRESS COMMAND 'Run >NIL: <NIL: 'Viewer' T:AMIL_Search.guide'
  158.  
  159. EXIT 0
  160.  
  161. /*
  162. ** End of ARexx script
  163. */
  164.